Towards High-Level Programming for Systems with Many Cores
نویسندگان
چکیده
The final publication is available at Springer via http://dx.doi.org/10.1007/978-3-662-46823-4_10. Abstract. Application development for modern high-performance systems with many cores, i.e., comprising multiple Graphics Processing Units (GPUs) and multi-core CPUs, currently exploits low-level programming approaches like CUDA and OpenCL, which leads to complex, lengthy and error-prone programs. In this paper, we advocate a high-level programming approach for such systems, which relies on the following two main principles: a) the model is based on the current OpenCL standard, such that programs remain portable across various many-core systems, independently of the vendor, and all low-level code optimizations can be applied; b) the model extends OpenCL with three high-level features which simplify many-core programming and are automatically translated by the system into OpenCL code. The high-level features of our programming model are as follows: 1) memory management is simplified and automated using parallel container data types (vectors and matrices); 2) a data (re)distribution mechanism supports data partitioning and generates automatic data movements between multiple GPUs; 3) computations are precisely and concisely expressed using parallel algorithmic patterns (skeletons). The well-defined skeletons allow for semantics-preserving transformations of SkelCL programs which can be applied in the process of program development, as well as in the compilation and optimization phase. We demonstrate how our programming model and its implementation are used to express several parallel applications, and we report first experimental results on evaluating our approach in terms of program size and target performance.
منابع مشابه
Towards many core real-time embedded systems: software design of streaming systems at system level
Nowadays, multi-core architectures become popular for embedded systems. As VLSI technology is scaling to deep sub-micron domain, an envisioned trend is that the architectures of embedded systems are moving from multiple cores to many cores. Although state-of-art multicore and future many-core architectures provide enormous potential, scaling the number of computing cores does not directly trans...
متن کاملWaveform Design using Second Order Cone Programming in Radar Systems
Transmit waveform design is one of the most important problems in active sensing and communication systems. This problem, due to the complexity and non-convexity, has been always the main topic of many papers for the decades. However, still an optimal solution which guarantees a global minimum for this multi-variable optimization problem is not found. In this paper, we propose an attracting met...
متن کاملApple-CORE: Microgrids of SVP cores
To harness the potential of CMPs for scalable, energy-efficient performance in general-purpose computers, the Apple-CORE project has co-designed a general machine model and concurrency control interface with dedicated hardware support for concurrency management across multiple cores. Its SVP interface combines dataflow synchronisation with imperative programming, towards the efficient use of pa...
متن کاملHardware/Software-Codesign by Automatic Embedding of Complex IP Cores
Complex SoC and platform-based designs require integration of configurable IP cores from multiple sources. Even automatic compilation flows from a high-level description to HW/SW systems can benefit from having access to reusable sophisticated hand-optimized IP blocks. This work proposes the Parametric C Interface For IP Cores (PaCIFIC) to allow the automatic embedding of complex IP cores in a ...
متن کاملTowards Parallel Programming Models for Predictability
Future embedded systems for performance-demanding applications will be massively parallel. High performance tasks will be parallel programs, running on several cores, rather than single threads running on single cores. For hard real-time applications, WCETs for such tasks must be bounded. Low-level parallel programming models, based on concurrent threads, are notoriously hard to use due to thei...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014